home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
NEWSOFT
/
AUGUST
/
WORKDISC
/
!Forthmacs
/
lib
/
interact
< prev
next >
Wrap
Text File
|
1997-04-18
|
868b
|
27 lines
\ lib/interactive.fth defines a local forth interpreter loop
0 pointer stack-buff
variable exit-interact?
: use-local-stack \ ( ??? -- )
stack-buff
ps-size 20 cells+ allocate abort" Can't allocate local stack" is stack-buff
stack-buff 3 cells+ !
sp0 @ stack-buff ! sp@ stack-buff cell+ !
exit-interact? @ stack-buff 2 cells+ ! exit-interact? off
stack-buff ps-size 16 cells+ sp0 !
clear ;
: use-old-stack \ ( ??? -- )
stack-buff 2 cells+ @ exit-interact? !
stack-buff @ sp0 ! stack-buff cell+ @ sp!
stack-buff 3 cells+ @
stack-buff free abort" Interact stack error"
is stack-buff ;
: interpret-line \ input-line ( -- ?? )
0. 0. 0 prompt 2drop 2drop drop \ Hack to make showstack work
??cr ." -ok- " tib 80 expect tib span @ evaluate ;
: interact \ ( -- )
use-local-stack
begin interpret-line exit-interact? @ until
use-old-stack ;